#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :


import os, time, random
from multiprocessing import Pool


def work(obj):
    p_start = time.time()
    print(f'{obj}正在执行, 进程号为：{os.getpid()}')
    time.sleep(random.random() * 2)
    p_stop = time.time()
    print(obj, f'程序执行完毕，耗时：{p_stop - p_start}')


if __name__ == '__main__':
    main_start = time.time()
    po = Pool(3)
    for i in range(10):
        # po.apply(work, (i,))  # 同步方法
        po.apply_async(work, (i,))
    print('start..')
    # 使用进程池需要手动关闭
    po.close()
    po.join()
    print('end..')
    main_stop = time.time()
    print('主进程结束时间：%.2f' % (main_stop - main_start))

# 将当期线程文件导入到当前文件中
import threading  # 将线程文件中的所有方法全部导入
from threading import Thread  # 将文件中其中一个方法导入进来，加载速度比上面那种导入方式快
